# Version 0.16.3 (2024-11-27)

* python: use `hatch run` or `poetry run` when running Python in these build
  environments

# Version 0.16.2 (2024-11-27)

* python: really prefer `hatch test` over `python3 manage.py test`
  (see v0.16.1)


# Version 0.16.1 (2024-11-27)

* python: prefer `hatch test` over `python3 manage.py test` in case of
  a django application using the hatch buildsystem. `hatch` is preferable here,
  since it prepares the virtual environment.


# Version 0.16.0 (2024-10-22)

* apply timeouts during `makefilet` download (previously the download could
  get stuck)
* avoid re-downloading makefilet during `make clean`
* python: use hatch's new commands "fmt" (since v1.8) and "test" (since v1.10)
    * The previous approch (`hatch run fmt` and `hatch run test`) relied on
      custom actions being named in a specific way.


# Version 0.15.0 (2024-03-09)

* deb: generate proper package name during `init-deb`
  (replacing underscores with hyphens)
* python: add "upload" actions for poetry and hatchling
* python: add "build" (`dist`) actions for poetry and hatchling
* add downloading of external modules via `MAKEFILET_MODULES`
* add default fallback URL for downloading `makefilet`.
  The download URLs can be configured via `MAKEFILET_DOWNLOAD_URL_TEMPLATES`.
  This requires an update of your embedded `makefilet-download-ondemand.mk`.


# Version 0.14.4 (2023-12-15)

* python/debian: allow early setting of `PYPI_UPLOAD_TARGET` and
  `DEBIAN_UPLOAD_TARGET`
  (previously these variables needed to be set *after* including makefilet in
  your `Makefile`)
* python: remove check for existing pypirc section for `PYPI_UPLOAD_TARGET`
  (the default pypi target URL can be named explicitly without a section with
  the same name)


# Version 0.14.3 (2023-12-10)

* python: do not complain about a missing `pyproject.toml` file


# Version 0.14.2 (2023-11-19)

* python: allow customization of translation target (`django-translate`)
  via `DJANGO_COMPILEMESSAGES_ARGS` and `DJANGO_MAKEMESSAGES_ARGS`


# Version 0.14.1 (2023-10-04)

* python: deprecate 'DISABLE_CUSTOM_VIRTUALENV' in favor of the new
  'PYTHON_VIRTUALENV_ENABLE'. The future behavior regarding virtual
  environments will change from "enabled by default" to "disabled by default".
  (Build systems like 'poetry' and 'hatch' now tend to hide virtual
  environments from developers.)
* nodejs: do not rely on a valid version string in `package.json`.
  No we handle an empty version string gracefully.
  This should reflect the reality of many projects using `package.json` merely
  for dependency tracking.


# Version 0.14.0 (2023-07-01)

* python: enable Python support, if `pyproject.toml` exists.
  Previously only `setup.py` was used as an indicator file.
* python: try to use `poetry` or `hatch` operations for test/lint/style
  (see `PYTHON_BUILD_SYSTEM`, `PYTHON_TEST_RUNNER`, `PYTHON_LINT_RUNNER` and
  `PYTHON_STYLE)_RUNNER`)


# Version 0.13.0 (2023-02-16)

* allow selection of a specific GPG key when signing the release tarball
  via `SIGNATURE_EMAIL`
* fix interactivity issue with `init-deb` target
  (only relevant for hosts with more than one CPU)
* remove out-of-tree build directory for `deb` packages in the context of a
  project with a git submodule
  (i.e. `build/debian/PROJECT-VERSION` is removed right after the build)


# Version 0.12.0 (2022-11-02)

* `makefilet-download-ondemand.mk`: change reference to "latest" commit from
  `master` to `main` (the branch was renamed)
* Use `unstable` as the default release distribution when updating
  `debian/changelog`.
  Previously Ubuntu-derived systems used their current release name, thus
  preventing the name from being predictable.
  The previous behavior can be restored by setting `DEB_RELEASE_DISTRIBUTION`
  to an empty value.
  (Closes: #38)
* allow `zstd` for `RELEASE_TAR_COMPRESSION_BIN`
* rename `DISABLE_PYTHON_FLAKE8` to `DISABLE_PYTHON_LINT_FLAKE8`
  (clarifying that it refers to linting, only)
* replace `DISABLE_PYTHON_BLACK` with `ENABLE_PYTHON_LINT_BLACK`, thus
  disabling `black` for style checks (`lint`) by default


# Version 0.11.0 (2022-06-25)

* Output synchronization (separation of output from parallel running targets)
  can be configured via the `MAKEFILET_OUTPUT_SYNCHRONIZATION` variable.
  Its value is handed over to `make`'s `--output-sync` argument.
  Typical values are `line` (default), `target` or `none`.


# Version 0.10.0 (2021-10-31)

* shell:
    * allow overriding of all variables
    * replace "SHELLCHECK_CALL" with "SHELLCHECK_ARGS"
    * introduce new variable SHELL_FILES_DIRECTORIES (default: ".")


# Version 0.9.1 (2021-10-27)

* release: handle VERSION indicator files nested below the project root
  (closes: #35)


# Version 0.9.0 (2021-10-27)

* ensure that changes in release-related files for npm
  (e.g. `package.json`) are committed via git
* python:
    * allow disabling of flake8 lint checks via `DISABLE_PYTHON_FLAKE8=1`
    * allow override of files/directories used for flake8
    * add linting via black (can be disabled via `DISABLE_PYTHON_BLACK=1`)
    * add automatic formatting via black (`make style`)


# Version 0.8.0 (2021-10-26)

* allow selection of alternative download locations via
  `MAKEFILET_DOWNLOAD_URL_TEMPLATE` or `MAKEFILET_DOWNLOAD_URL`


# Version 0.7.3 (2021-02-22)

* fix detection of outdated makefilet version


# Version 0.7.2 (2021-02-01)

* fix determination of `shellcheck` path


# Version 0.7.1 (2021-01-13)

* fix detection of outdated makefilet version


# Version 0.7.0 (2021-01-09)

* python:
    * force removal of old "foo.egg-info/SOURCES.txt" during "clean-python"
      This is a workaround for https://github.com/pypa/setuptools/issues/436.
      (closes: #33)
    * python support (e.g. for venv) may be forced via MAKEFILET_ENABLE_PYTHON=1
      (closes: #23)
* pypi2deb:
    * allow version specification for packages
      (closes: #26)
    * allow to run without a local debian/changelog file
      (closes: #25)
* release:
    * add support for npm-based release
      (closes: #21)
* shell:
    * do not disable shell-related checks by default
      Shell-related testing and linting can be disabled via DISABLE_SHELL_CHECK=1.
    * warn if shellcheck is missing
    * rename "test-shell" to "lint-shell"
* automatically run jobs in parallel (if "-j X" is not specified)
  (closes: #29)
* warn if the currently active version of makefilet is older than the version
  requested via MAKEFILET_DOWNLOAD_VERSION
  This may happen if makefilet is installed system-wide.
  (closes: #27)


# Version 0.6.8 (2020-11-10)

* python:
    * do not try to install virtualenv pre-dependencies which
      are part of the standard library


# Version 0.6.7 (2020-11-10)

* release:
    * tolerate untracked files during release
* python:
    * ensure VIRTUALENV_PREDEPENDENCIES being available inside
      the virtualenv


# Version 0.6.6 (2020-08-13)

* python:
    * fix handling of "DISABLE_PYTHON_TESTS"


# Version 0.6.5 (2020-08-12)

* deb:
    * "test-deb" (and thus "test") does not depend on "lint-deb"
      anymore


# Version 0.6.4 (2020-07-18)

* python:
    * do not automatically upgrade the packages installed in the
      virtualenv


# Version 0.6.3 (2020-07-14)

* python:
    * finally fix the recursive virtualenv handling


# Version 0.6.2 (2020-07-14)

* python:
    * fix recursive virtualenv handling


# Version 0.6.1 (2020-07-13)

* python:
    * detect an active virtual environment and avoid entering
      it again


# Version 0.6.0 (2020-07-13)

* python:
    * add optional VIRTUALENV_PREDEPENDENCIES variable for
      emitting helpful warnings in case of missing build
      pre-dependencies


# Version 0.5.5 (2020-06-24)

* release:
    * add support for Makefile located in a subdirectory of
      a git repository


# Version 0.5.4 (2020-01-09)

* release:
    * avoid warning in case of empty BUMP_VERSION_COMMIT_FILES
    * handle more than three version number parts gracefully
* download-ondemand:
    * do not hide wget error messages
* makefile:
    * avoid accessing undefined variables
* python:
    * fix coverage report visualization


# Version 0.5.3 (2019-03-16)

* release:
    * specify PROJECT_NAME for directory name in release tarball


# Version 0.5.2 (2019-03-12)

* deb:
    * allow override of dput call in `deb-upload` target with
      DEB_UPLOAD_COMMAND variable


# Version 0.5.1 (2019-02-26)

* fix virtualenv-related dependencies (e.g. for tests)


# Version 0.5.0 (2019-02-25)

* new component "python-django"
* execute django-related check in "virtualenv-check" only for django projects


# Version 0.4.0 (2019-02-25)

* download-ondemand:
    * fix portability issue for *BSD
* new component "python-virtualenv"
* python:
    * "clean" depends on "clean-python"
    * allow disabling of tests explicitly via DISABLE_PYTHON_TESTS=1


# Version 0.3.0 (2019-02-10)

* deb:
    * suppress error messages in case of optional missing executables
      (e.g. dpkg-architecture)
    * allow arguments for lintian (see LINTIAN_ARGS)
* release:
    * allow the filename of the bumpversion configuration to be overridden
      (BUMP_VERSION_CONFIG)
    * explicitly collect the list of files to be committed during
      "make release-*" (see BUMP_VERSION_FILES)
    * allow "BUMP_VERSION_FILES" to be overridden
    * fail if a file listed in "BUMP_VERSION_FILES" is missing
    * add "release-tar" and "release-tar-sign" targets
* python:
    * fix execution of coverage within a virtualenv
      (missing python3-coverage)
    * allow override of test execution within a coverage run
      (via PYTHON_TEST_ARGS)
    * automatically run unittests
      (finishing without errors if no tests are found)
    * open the coverage report in a browser
      (only within a desktop session and if "xdg-open" is available)
    * fix dependency of "lint-python"
      (now attached to "lint" instead of "test")
* new component "generic":
    * generate "tags" file via "ctags"
* shell:
    * hide the shellcheck command
      (reducing noise in case of long lists of files)


# Version 0.2.10 (2018-12-11)

* release:
    * fix broken handling of "make release-undo" (introduced in 0.2.9)


# Version 0.2.9 (2017-12-21)

* release:
    * handle missing file ".bumpversion" gracefully
    * improved error message if VERSION file is missing


# Version 0.2.8 (2017-11-19)

* pypi2deb:
    * allow package-specific environment settings
    * improve failure detection
* release: prevent successive (accidental) release commits
* populate "Suggests" of deb package
* documentation fixes


# Version 0.2.7 (2017-08-27)

* fixed recently introduced 'clean' operation


# Version 0.2.6 (2017-08-27)

* remove downloaded makefilet directory during 'clean'


# Version 0.2.5 (2017-05-10)

* fix 'install-python' due to bad 'DESTDIR' handling


# Version 0.2.4 (2017-05-09)

* fix path handling of 'check-dput-config' target for 'upload-deb'


# Version 0.2.3 (2017-05-06)

* tolerate errors in 'clean' targets
* hide misleading error message for missing 'dh_listpackages' (from 'debhelper')


# Version 0.2.2 (2017-05-02)

* allow configurable parameters for 'install-python'
* introduce the new target 'lint' for style checks
* move 'flake8' check from 'test-python' to 'lint-python'


# Version 0.2.1 (2017-04-29)

* add minimal makefile snippet for 'download on-demand' integration into projects


# Version 0.2 (2017-04-29)

* calling 'flake8' on more platforms properly
* deb packaging:
    * add 'init-deb' target (calls 'dh_make')
    * add deb packaging information for makefile itself (#2)
    * add 'test-deb' for lintian tests
    * allow quilt-based source format for repositories without submodules


# Version 0.1 (2017-04-24)

* Initial release
* basic support for deb packaging, python, bumpversion, pypi2deb and shell scripts
